package com.wmb;
/*
      Maven:
        什么是Maven：
            Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设，Maven使用标准的目录结构和默认构建生命周期。
        Maven的作用：
            1.功能一：Maven主要用于解决导入依赖于Java类的jar包和编译Java项目的主要问题。（最早手动导入jar，并使用Ant编译Java项目）依赖的jar包由pom.xml文件中的dependency属性管理，
            并且jar包包含类文件和一些必要的资源文件。当然，它可以构建项目，管理依赖关系并生成简单的单元测试报告。
            2.功能二：例如，上一个项目导入了jar。它通过副本导入到项目中，并且jar之间存在依赖关系和冲突。Maven解决了这些问题，但是当互联网速度不佳时，这很烦人。使用专用服务器关系解决此问题。
            3.功能三：Jar包管理，以防止jar之间的依赖关系冲突。在组之间建立私有服务。每个人都使用通用的maven配置文件，而不是手动下载jar。pom文件将自动管理下载的jar包。
            4.功能四：Maven是基于项目对象模型的软件项目管理工具，可以通过一小段描述信息来管理项目的构造，报告和文档。Maven可以轻松地帮助您管理项目报告，生成站点，管理jar文件等。例如：项目开
            发中的第三方jar引用。在开发过程中，合作成员引用的jar版本可能会有所不同，并且同一jar的不同版本可能会重复引用。可以通过使用Maven关联jar来配置引用的jar的版本，以避免冲突。

            综上：Maven对jar包的管理可以减少不必要的冲突，排除了一一导包的繁琐步骤，排除了jar包之间的重复
                 eg：两个项目A B，项目A需要依赖一些jar包，项目B也需要依赖这些jar包，那么此时如果都把jar包引入到项目中，
                     就是在重复造轮子，我们应该把这些所有的jar包放到一个地方（pom.xml），需要用的时候过去取即可。
                 相当于把一些麻烦的工序都以准备好，程序员直接用就好

        Maven的工程类型有哪些？
            1.war包工程（web工程）
            2.jar包工程（Java工程）
            3.pom工程（聚合工程）


      MVC:
        概念：
            MVC顾名思义分为三层：
                M：Model层   Model层中  包含 DAO层和Javabean层；
                V：view 意为视图层也叫表示层，也可以直接理解为是JSP，用于前端显示；
                C:  ‘控制层’  包含ctroller层，和service层；

            各层的功能：
                ctroller层：控制层，主要实现与视图层的交互，调用service层的接口来控制业务流程。

                service层：业务层，调用DAO层的接口，负责给controller层提供接口，（建立在DAO层之上，controller层之下)
                          首先设计自己的接口，再设计其实现类，负责业务模块的逻辑应用设计。

                DAO层：数据访问层，用来操作数据库的层次，比如，连接，增删改查等操作，这个层次和Javabean层次是一一对应的。
                      该层次也是先设计自己的接口，一般是一个表对应一个接口，然后再设计接口相对应的实现类，一般操作，增删改查这些步骤很是相似，
                      可以设计个接口，再用一个公共类进行实现该接口。

                Javabean层：里面的类是用来和DAO层一一对应，用来操作数据库，我的理解是javabean更多的是一种规范，就是一个Java对象可以包含一组set和get方法。
                           该层通常也写成pojo（简单的Java对象,实际就是普通的Javabean)层和entity(实体bean）层。该层次下的一个类对应数据库中的一个表单

          MVC实现的过程：  表示层（view)调用控制层（controller)，控制层调用业务层（service)，业务层调用数据访问层（DAO），DOA操作数据库，
                         JavaBean与收据库中的表一一对应，一个 DAO实现类和一个JavaBean中的类对应


新增内容：

        三层架构
            三层架构是指：视图层view，服务层service，持久层Dao，通常也叫（表示层UI，业务逻辑层BLL，数据访问层DAL）它们的功能是： 
            1.view层：  用于显示数据和接收用户输入的数据，为用户提供一种交互式操作的界面
            2.service层：实现业务的主要逻辑，是系统架构中体现核心价值的部分。
            3.Dao层：有时候也称为是持久层，其功能主要是负责数据库的访问。可以访问数据库、二进制文件、文本文件等。简单的说法就是实现对数据表的Select，Insert，Update，Delete的操作。如果要加入ORM的元素，那么就会包括对象和数据表之间的mapping，以及对象实体的持久化。

        三层架构的出现是为了降低耦合度，在这里，使用面向抽象编程，也就是上层对下层的调用，直接通过接口来完成，下层对上层的真正服务提供者，是下层实现的接口实现类，实现类是可以更换的，这就实现了层间的解耦合。 
        
////////////////////////////////////////////////////////////MVC/////////////////////////////////////////////////////////////////
    什么是MVC模式？
        MVC 是一种使用 MVC（Model View Controller 模型-视图-控制器）设计创建 Web 应用程序的模式：
        1.View： 视图，为用户提供使用界面，与用户进行交互。 
        2.Model： 模型承载数据，对用户提交请求进行计算的模块，分为两类：1.数据承载bean，2.业务承载bean，数据承载bean是指实体类专门承载业务数据的，比如Student，User，业务处理bean是指Service或者Dao对象，专门处理用户的请求的。 
        3.Controller：控制器，用来将用户请求转发给相应的Model进行处理，并且根据Model的计算结果向用户提供相应的响应。

    最典型的MVC就是我们最近学习的JSP + Servlet + javabean的模式。

    三层架构与MVC的关系
        三层架构与MVC毫无关系。之所以这样说，是因为它们二者使用范围不同：三层可以应用于任何语言、任何技术的应用程序；而MVC只是为了解决B-S应用程序视图层各部分的耦合关系。它们互不冲突，可以同时存在，也可根据情况使用其中一种。

        之所以我们会混淆，是因为在进行web开发时两者会同时使用。

        在三层架构设计中，表示层可由MVC设计模式中的视图和控制器来实现，而业务逻辑层和数据访问层则组成MVC设计模式中的模型的实现。因此，在实际的应用中，都是采用三层架构来搭建系统的框架，而表示层与业务逻辑层和数据访问层的交互则是通过MVC设计模式来实现。

////////////////////////////////////////////////////////////SSM//////////////////////////////////////////////////////////////////////////////////

    什么是SSM框架？
        SSM是Spring+Spring MVC+Mybatis的缩写，主流的Java EE企业级框架。
        其中，Spring是一个轻量级的控制反转（IOC）和面向切面（AOP）的容器框架，可以帮助我们创建对象。
        Spring MVC控制开发，让开发简单规范。
        MyBatis是一个基于Java的持久层框架，封装了增删改查操作。

    项目中包的命名机构：
        bean 实体类，对应数据库中的表
        构造方法
        属性
        getter setter
        toString()

        dao 持久层 数据库增删改查
        service 业务层
        controller 控制层 跳转哪里

        resources 配置文件层
            mapper dao实现类
            applicationContext.xml Spring的配置文档
            db.properties 数据库连接信息
            log4j.properties 日志配置文件
            springmvc.xml 配置springmvc

        webapp
            jsp等页面
            web-inf
            web.xml 加载过滤器 拦截器

        SSM与三层架构的对应关系

    SSM，即SpringMVC，Spring与Mybatis的统称。
        1.SpringMVC:作为view的实现者，它的controller作为整个应用的控制器，完成用户请求的转发和对用户的响应。 
        2.Mybatis:作为Dao的实现者，完成数据库的增伤改查等功能。 
        3.Spring：是整个应用的大管家，整个应用中所有的bean的生命周期行为，都是由Spring来管理的，就是说整个应用中所有的对象的创建，初始化，销毁，以及对象之间关联的关系维护，都是由Spring来进行管理。 







 */
public class Main {

    public static void main(String[] args) {
	// write your code here
    }
}
